#include <iostream>
#include <sys/types.h>
#include <signal.h>
#include <unistd.h>

void handler(int signo)
{
    std::cout<<"这是我对信号的捕捉函数,signo"<<signo<<std::endl;
}
int main()
{
    signal(2,handler);
    while(true)
    {
        sleep(1);
        std::cout<<"process id"<<getpid()<<std::endl;
    }
}

// int n = 0;
// void handler(int signo)
// {
//     std::cout << "捕捉到" << signo << "信号" << std::endl;
//     std::cout << "距离上个闹钟响铃还有" << n << "秒" << std::endl;
// }

// int main()
// {
//     signal(SIGALRM, handler);
//     alarm(10); // 10s后向自己发送闹钟信号
//     while (true)
//     {
//         n = alarm(5);
//         std::cout << "process continue..." << std::endl;
//         sleep(10);
//     }
//     return 0;
// }

// int main()
// {
//     int cnt = 0;
//     while (++cnt)//10s后向自己发送9号信号
//     {
//         std::cout<<"process continue..."<<std::endl;
//         sleep(1);
//         if (cnt == 10)
//             raise(9); // 向自己发送9号
//     }
//     return 0;
// }

// int main()
// {
//     kill(148844,9);
//     return 0;
// }

// int main()
// {
//     while(true)
//     {
//         sleep(1);
//         pid_t pid=getpid();
//         std::cout<<"process pid :"<<pid<<std::endl;
//     }
//     return 0;
// }